/**
 *
 */
package br.gov.ms.tce.cjur.factory;

import br.gov.ms.tce.bean.cjur.SolicitacaoItem;
import br.gov.ms.tce.bean.cjur.SolicitacaoItemDocumentoPessoal;
import br.gov.ms.tce.bean.cjur.SolicitacaoItemEmail;
import br.gov.ms.tce.bean.cjur.SolicitacaoItemEndereco;
import br.gov.ms.tce.bean.cjur.SolicitacaoItemPessoaFisica;
import br.gov.ms.tce.bean.cjur.SolicitacaoItemTelefone;
import br.gov.ms.tce.bean.cjur.SolicitacaoItemUnidadeGestora;
import br.gov.ms.tce.bean.comum.Comparavel;
import br.gov.ms.tce.bean.comum.DocumentoPessoal;
import br.gov.ms.tce.bean.comum.Email;
import br.gov.ms.tce.bean.comum.Endereco;
import br.gov.ms.tce.bean.comum.PessoaFisica;
import br.gov.ms.tce.bean.comum.Telefone;
import br.gov.ms.tce.bean.comum.TipoClassificacao;
import br.gov.ms.tce.bean.comum.UnidadeGestora;

/**
 * @author Anderson Paulino
 * @date 31/07/2011
 */
public class SolicitacaoItemFactory {

	/**
	 * @param compa
	 * @return
	 */
	public static SolicitacaoItem create(Comparavel comp, TipoClassificacao tipo) {
		SolicitacaoItem si=null;
		if(comp instanceof Endereco)
			si = new SolicitacaoItemEndereco((Endereco)comp);
		else if(comp instanceof Email)			
			si = new SolicitacaoItemEmail((Email)comp);
		else if(comp instanceof Telefone)
			si = new SolicitacaoItemTelefone((Telefone)comp);
		else if (comp instanceof DocumentoPessoal)
			si = new SolicitacaoItemDocumentoPessoal((DocumentoPessoal)comp);
		else if (comp instanceof PessoaFisica)
			si = new SolicitacaoItemPessoaFisica((PessoaFisica)comp);
		else if (comp instanceof UnidadeGestora)
			si = new SolicitacaoItemUnidadeGestora((UnidadeGestora)comp);
		
		
		if(si !=null){
			si.setTipo(tipo);
		}
		
		return si;
	}

}
